//package DataStructure.Queue;
//
//import sun.misc.Queue;
//
///**
// * @Author by KoVaVo
// * @Date 2021-05-11 21:00
// * @Desc: 基于动态循环数组实现队列
// */
//public class DynArrayQueue extends Queue {
//    //对首
//    private int front;
//    //队尾
//    private int rear;
//    private int capacity;
//    private int [] array;
//
//    public DynArrayQueue(){
//        capacity=1;
//        front =-1;
//        rear=-1;
//        array =new int[1];
//    }
//
//    public static DynArrayQueue createDynArrayQueue(){
//        return new DynArrayQueue();
//    }
//
//    @Override
//    public boolean isEmpty(){
//        return  (front ==-1);
//    }
//
//    public boolean isFull(){
//        return (rear + 1)%capacity == front;
//    }
//
//    public int getQueueSize(){
//        if(front == -1){
//            return  0;
//        }
//        int size =  ((capacity -front + rear+1)%capacity);
//        if(size == 0){
//            return capacity;
//        }else{
//            return size;
//        }
//    }
//
//    //动态的扩充数组的长度
//    public void resizeQueue(){
//        int initCapacity = capacity;
//        capacity *=2;
//        int [] oldArray=array;
//        array = new int[this.capacity];
//        for (int i = 0; i < oldArray.length; i++) {
//            array[i] = oldArray[i];
//        }
//        if(rear < front){
//            for (int i = 0; i < front; i++) {
//                array[i+initCapacity] = this.array[i];
//                array[i] = Integer.parseInt(null);
//            }
//            rear = rear+initCapacity;
//        }
//    }
//
//    //入队
//    public void enQueue(int data){
//        if(isFull()){
//            resizeQueue();
//        }
//        rear = (rear+1)%capacity;
//        array[rear] =data;
//        if(front == -1){
//            front = rear;
//        }
//
//    }
//
//    //出队
//    public int deQueue(){
//        int data = 0;
//        if(isEmpty()){
//            System.out.println("队列是空的");
//            return data;
//        }else{
//            data = array[front];
//            if(front == rear){
//                front = rear=-1;
//            }else{
//                front = (front+1)%capacity;
//            }
//            System.out.println(data);
//        }
//        return data;
//    }
//
//    public static void main(String[] args) {
//        DynArrayQueue dynArrayQueue = new DynArrayQueue();
//        dynArrayQueue.enQueue(1);
//        dynArrayQueue.enQueue(2);
//        dynArrayQueue.enQueue(3);
//        dynArrayQueue.enQueue(4);
//
//        dynArrayQueue.deQueue();
//        dynArrayQueue.deQueue();
//        dynArrayQueue.deQueue();
//        dynArrayQueue.deQueue();
//
//    }
//}
